﻿<UserControl x:Class="MergeTool.UI.Views.HelpView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:mui="http://firstfloorsoftware.com/ModernUI"
             mc:Ignorable="d" 
             d:DesignHeight="800" d:DesignWidth="600">
    <Grid Style="{StaticResource ContentRoot}">
        <ScrollViewer>
            <StackPanel MinWidth="200">
                <TextBlock Text="Description and use of this tool" Style="{StaticResource Heading2}" />
                
                <mui:BBCodeBlock BBCode="Merge Tool - main purpose of this tool is to manage merging between large number of branches or when merge is done frequently between the same branches for example often merging branch containing fixes towards MAIN branch or vice versa. Sometimes when many branches need to be merged, it's easy to miss some important information like: comments, work item association or even a whole changeset, resulting into fixed bug will appear in next version of software being developed. This tool should help to manage available changesets for merging either automatically or manually." Margin="0,0,0,16" />

                <TextBlock Text="Log In" Style="{StaticResource Heading2}" />
                <mui:BBCodeBlock xml:space="preserve">This page contains validation logic for several fields. It validates the user and given input towards the TFS and checks the correctness of the input. [b] This page does not provide real login functionality to the TFS, user has to use Visual Studio and connect to TFS before using this tool instead.[/b]

Fields on the Log In page:
    » TFS URI - Address of TFS, example: [i]https://tfsdestiny.visualstudio.com[/i]
    » Project Collection - Name of project collection, example: [i]DefaultCollection[/i]
    » Team Project - Name of team project inside collection, example: [i]BranchingMerging[/i]
    » User Name - Member of TFS, for domain account it's user account name example: [i] Petr Karas[/i] for TFS online it's email login

    » navigate to the [url=/Views/LoginView.xaml]Log In[/url] page
                </mui:BBCodeBlock>
                <TextBlock Text="Manage Branches" Style="{StaticResource Heading2}" />
                <mui:BBCodeBlock xml:space="preserve">Page where user can start execution of merge either from preset configration, also called [b]Merge Flow[/b] or merge of individual branches. Before starting the merge it's highly recommended to use [b]Validation section[/b] to ensure that the input given for merging is correct. Before each checkin towards the TFS, pop-up window will be shown where user can check final result and approve or reject checkin.

Elements on the "Manage Branches" page:
[b]Verification section[/b]
    » [b]Button[/b] > Check for unavailable branch names - Checks branch names for the chosen Merge Approach whether they exist in team project's source control.
    » [b]Button[/b] > Check for non unique branch names - Checks branch names for the chosen Merge Approach whether they are unique in team project's source control, example: if source control
contains branches "$/BranchingMerging/Hotfix/DEV1" and "$/BranchingMerging/DEV1" and user has specified "DEV1" as a branch to merge, this will result into non unique branch name declaration.
    » [b]Button[/b] > Check for baseless merge branches - Checks branch names for the chosen Merge Approach whether the merge would result into baseless merge.

[b]Merge specific section[/b]
If the checkbox is checked, merge will be performed only with branches specified into [b]From:[/b] and [b]To:[/b]. If the Changeset is specified, merge tool will merge only this changeset between the two branches,
otherwise whole branches will be merged.
                    
    » navigate to the [url=/Views/MergetoolView.xaml]Manage Branches[/url] page
                </mui:BBCodeBlock>
                <TextBlock Text="Organize Branches Config" Style="{StaticResource Heading2}" />
                <mui:BBCodeBlock xml:space="preserve">User interface for configuring Merge Approaches and branches that will be merged.
[b]Merge Approach[/b] - user can specify Merge Approach on the Manage Branches page, if merge is started against merge approach, branches for this approach will be merged one by one given the order property (merging goes from lowest order number to the highest). When two branches are being merged, MergeOption from the first specified branch is used.

    » navigate to the [url=/Views/SetConfigBranchesView.xaml]Organize Branches Config[/url] page
                </mui:BBCodeBlock>
                <TextBlock Text="Settings - Merging" Style="{StaticResource Heading2}" />
                <mui:BBCodeBlock xml:space="preserve">
[b]Merge by[/b] if branch is chosen, branches will be merged as a single checkin, if changeset is chosen, all changesets from source branch that are available for merging towards target will be merged one by one (usualy results into more checkins, but gives better overview of what has been merged).
[b]Work item id to associate[/b] Merge Tool automatically associates work items to the changesets produced by merging if "Merge by changeset" is specified and if the changeset had some work items associated. In addition to this, work item specified in this field will be used for association.
[b]Transfer comments[/b] if used in combination with "Merge by changeset", comments from each changeset will transfered from source branch towards target branch.

    » navigate to the [url=/Pages/Settings.xaml]Settings - Merging[/url] page
                </mui:BBCodeBlock>
            </StackPanel>
        </ScrollViewer>
    </Grid>
</UserControl>
